// Promise封装AJAX请求
export function $ajax(method = 'get', url, data = null) {
  return new Promise((resolve, reject) => {

    /****************************设置全局请求域名**********************************************************/
    
    // 开发环境
    let globalAjaxUrl = 'https://res.moncler.cn';
    // 生产环境
    globalAjaxUrl = '';

    /***********************设置全局请求域名***************************************************************/

    let xhr;
    // 创建一个新的XMLHttpRequest对象
    if (window.XMLHttpRequest) {
      xhr = new XMLHttpRequest();
    } else { // 兼容低版本
      xhr = new ActiveXObject("microsoft.XMLHTTP");
    }
    // 配置请求类型、URL 默认异步请求不会阻塞别的请求
    xhr.open(method, globalAjaxUrl + url);
    // post时修改请求头格式
    if (method == "post") {
      xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
    }
    // 发送请求
    xhr.send(data || null);
    // 监听请求完成事件
    xhr.onreadystatechange = () => {
      if (xhr.readyState === 4) {
        if (xhr.status === 200) {
          // 请求成功，调用resolve并传递响应文本
          resolve({
            isOk: true,
            data: JSON.parse(xhr.responseText)
          });
          console.log(JSON.parse(xhr.responseText));

        } else {
          // 请求失败，调用reject并传递错误信息
          reject(new Error(`Failed to fetch data: ${xhr.statusText}`));
        }
      }
    };
  });
}